const app = new getApp();

// miniprogram/pages/scan/scan.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  // 调转至mycard
  tomycard(){
    wx.redirectTo({
      url: '/pages/mycard/mycard',
    })
  },

  // 这是拍下照片并将照片发至txapi的过程
  takePhoto(){
    wx.showToast({
      icon : 'loading',
      title : '识别中...'
    })
    // 1.拍下一张照片
    this.getPhoto().then((path)=>{
    // 2.将照片转为banse64
      return this.readFile(path);
    }).then((base64)=>{
    // 3.提交到腾讯云
      return this.txApi(base64);
    }).then((res)=>{
      // 4.判断结果
      let items = res.data.data.items;
      console.log(items);
      let hasYou = items.some((item)=>{
        return item.itemstring.indexOf('邮') > -1;
      });

        /**
         * hasYou = true;
         * 仅用于测试云函数
         * 测试完毕必须注释或删除掉
        */
        // let hasYou = true;
        // hasYou 是 经过腾讯云api检测ocr文字后检测返回结果中 是否检测出邮字的 一个结果
        if( hasYou ){
          // 结果中含有邮字
          // 创建记录
          wx.cloud.callFunction({
            name : 'getYou',
            success:(res)=>{
              console.log('getYou',res);
              
              // 判断后台相关逻辑规则是否符合获得邮字的条件
              if (res.result.success==false){
                // 后台相关规则不符合加邮字的规则
                wx.showToast({
                  title: res.result.msg,
                  icon: 'none',
                  duration: 1500,
                });
              }else{
                // 后台加邮字成功
                // 加邮成功的话得跳转到newcard页面
                // 1.获取邮票种类变量 type
                // 2.将type传至newcard 通过type的不同 显示不同的邮卡
                let type = res.result.type

                wx.showToast({
                  title: '恭喜,获得type'+type,
                  icon: 'success',
                  duration: 1500,
                });

              
                wx.navigateTo({
                  url: '/pages/newcard/newcard?type='+type,

                })
              }
            }
          })
        }else{
          // 结果中没有邮字
          wx.showToast({
            title: '请再试一遍',
            icon : 'none'
          })
        }
      

    })
  },

  // 1.拍照
  getPhoto() {
    return new Promise((reslove, reject) => {
      const ctx = wx.createCameraContext()
      ctx.takePhoto({
        quality: 'high',  //成相质量
        success: (res) => {
          // 返回图片的临时路径
          console.log(res)
          reslove(res.tempImagePath);
        },
        fail: (err) => {
          reject(err)
        }
      })
    })
  },

  // 2.转base64
  readFile(path){
    return new Promise((reslove,reject)=>{
      // 获取文件系统管理器对象

      const fs = wx.getFileSystemManager();

      fs.readFile({
        filePath:path,
        encoding:'base64',
        success:(res)=>{
          reslove(res.data);
        },
        fail:(err)=>{
          reject(err);
        },
      })

    })
  },

  txApi(base64) {

    return new Promise((reslove, reject) => {
      wx.request({
        url: 'https://recognition.image.myqcloud.com/ocr/general',
        header: {
          'host': 'recognition.image.myqcloud.com',
          'content-type': 'application/json',
          'authorization': app.globalData.sign
        },
        data: {
          appid: '1253938986',
          image: base64
        },
        method: 'POST',
        success: (res) => {
          reslove(res);
        },
        fail:(err)=>{
          reject(err);
        },

      })
    })

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})